[AJUDA] Meu script não quer somar nem multiplicar! [RESOLVIDO]

1. [AJUDA] Meu script não quer somar nem multiplicar! [RESOLVIDO]

Zéh
zedabaia

(usa Ubuntu)

Enviado em 03/11/2012 - 21:27h

Bom pessoal, meu primeiro post e já gostaria de pedir ajuda... Olhem o meu script:

#!system/bin/sh
# data!
# by zedabaia

dia=`date | awk '{print $3}'`
mes=`date | awk '{print $2}'`
ano=`date | awk '{print $6}'`
horafull=`date | awk '{print $4}'`
horaemmin=`expr $hora * 60 + $min`
horaemseg=`expr $horaemmin * 60`
horarestante=`expr 86400 - $horaemseg`
hora=`date | awk '{print substr($4,1,2)}'`
min=`date | awk '{print substr($4,4,3)}' | sed 's/://g'`
seg=`date | awk '{print substr($4,7,8)}'`
echo "Hoje e dia $dia de $mes de $ano"
sleep 1
echo "$horafull - Agora sao $hora horas, $min minutos e $seg segundos"
sleep 1
echo "Voce ainda tem $horarestante segundos do dia $dia de $mes"
echo "Tenha um bom dia!"
exit 0


Acontece que na hora do script me falar quantos segundos me resta de dia ele não me fala
Não sei se as contas estão certas, Por favor me ajudem!!


  


2. Re: [AJUDA] Meu script não quer somar nem multiplicar! [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/11/2012 - 02:01h

Não precisa complicar, da uma olhada no manual do comando date.

e.g segundos = date '+%S'


3. Re: [AJUDA] Meu script não quer somar nem multiplicar! [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 04/11/2012 - 02:15h

Basta executar chamando assim:


bash -x script

No seu caso o problema ficou pela sintaxe do expr e por você ter colocado a atribuição da variável HORA após o momento necessário de usá-la.

Fazendo as adaptações ficou assim:


#!system/bin/sh
# data!
# by zedabaia

dia=`date | awk '{print $3}'`
mes=`date | awk '{print $2}'`
ano=`date | awk '{print $6}'`
horafull=`date | awk '{print $4}'`
hora=`date | awk '{print substr($4,1,2)}'`
min=`date | awk '{print substr($4,4,3)}' | sed 's/://g'`
seg=`date | awk '{print substr($4,7,8)}'`
horaemmin=$(( $hora * 60 + $min ))
horaemseg=$(( $horaemmin * 60 ))
horarestante=$(( 86400 - $horaemseg ))

echo "Hoje e dia $dia de $mes de $ano"
sleep 1
echo "$horafull - Agora sao $hora horas, $min minutos e $seg segundos"
sleep 1
echo "Voce ainda tem $horarestante segundos do dia $dia de $mes"
echo "Tenha um bom dia!"
exit 0



4. Re: [AJUDA] Meu script não quer somar nem multiplicar! [RESOLVIDO]

Zéh
zedabaia

(usa Ubuntu)

Enviado em 04/11/2012 - 13:01h

rai3mb escreveu:

Basta executar chamando assim:


bash -x script

No seu caso o problema ficou pela sintaxe do expr e por você ter colocado a atribuição da variável HORA após o momento necessário de usá-la.

Fazendo as adaptações ficou assim:


#!system/bin/sh
# data!
# by zedabaia

dia=`date | awk '{print $3}'`
mes=`date | awk '{print $2}'`
ano=`date | awk '{print $6}'`
horafull=`date | awk '{print $4}'`
hora=`date | awk '{print substr($4,1,2)}'`
min=`date | awk '{print substr($4,4,3)}' | sed 's/://g'`
seg=`date | awk '{print substr($4,7,8)}'`
horaemmin=$(( $hora * 60 + $min ))
horaemseg=$(( $horaemmin * 60 ))
horarestante=$(( 86400 - $horaemseg ))

echo "Hoje e dia $dia de $mes de $ano"
sleep 1
echo "$horafull - Agora sao $hora horas, $min minutos e $seg segundos"
sleep 1
echo "Voce ainda tem $horarestante segundos do dia $dia de $mes"
echo "Tenha um bom dia!"
exit 0


Então o problema estava na ordem das strings?
E o que quer dizer sintaxe?



5. Re: [AJUDA] Meu script não quer somar nem multiplicar! [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 05/11/2012 - 12:07h

Sintaxe: em português, disposição dos termos em uma frase, no caso da programação é praticamente a mesma coisa, é a disposição dos termos no comando, veja que se vc executar o comando do expr diretamente no terminal vai dar erro.

Com erro:
expr 4 * 5
expr: syntax error (erro de sintaxe)
Sem erro:
expr 4 \* 5
20

Abraços







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts